﻿#ifndef __SS_SHADER_UNIFORM_H__
#define __SS_SHADER_UNIFORM_H__
#include "ssShader.h"
#include "string/ssString.h"

#define SS_GL_UNIFORM_FLOAT	1
#define SS_GL_UNIFORM_VEC	2
#define SS_GL_UNIFORM_MAT	3
#define SS_GL_UNIFORM_TEX2D	4
#define SS_GL_UNIFORM_INT	5

namespace StarSeeker
{
//uniform变量是外部application程序传递给（vertex和fragment）shader的变量
class ssShaderUniform
{
public:
	ssShaderUniform();
	//设置参数
	void BindData(i32 type, const char* name);
	//传递给GPU
	void Use(ssShader* pShader, const void* data, u32 count, u32 arrCount = 1);

private:
	i32			m_glslID;	//着色器中的序号
	ssString	m_glslName;	//着色器中的名字
	i32			m_type;		//
};

}
#endif
